1. Field of the Invention
This invention relates to methods of scheduling of polling packets for telecommunications devices using a telecommunications protocol, especially a wireless protocol, such as POLL packets of Bluetooth devices, to apparatus and software for carrying out such methods, and in particular to scheduling fewer polling packets when a telecommunications device such as a Bluetooth device is master of a radio link.
2. Description of the Related Art
Bluetooth is a well known short-range radio link intended to replace the cable(s) connecting portable and/or fixed electronic devices. Full details are available from Bluetooth SIG which has its global headquarters in Overland Park, Kans., USA. Key features are robustness, low complexity, low power, and low cost. Bluetooth operates in the unlicensed ISM band at 2.4 GHz. A frequency hop transceiver is applied to combat interference and fading. A slotted channel is applied with a nominal slot length of 625 μs. On the channel, information is exchanged through packets. In Bluetooth version 1.1 each packet is transmitted on a different hop frequency. In Bluetooth version 1.2 it is proposed that transmission and receive packets may be sent on the same frequency. The Bluetooth protocol uses a combination of circuit and packet switching. Slots can be reserved for synchronous packets.
The Bluetooth system can provide a point-to-point connection (only two Bluetooth units involved), or a point-to-multipoint connection. In the point-to-multipoint connection, the channel is shared among several Bluetooth units. Two or more units sharing the same channel form a piconet. One Bluetooth unit acts as the master of the piconet, whereas the other unit(s) acts as slave(s). Up to seven slaves can be active in the piconet. In addition, many more slaves can remain locked to the master in a so-called parked state. These parked slaves cannot be active on the channel, but remain synchronized to the master. Both for active and parked slaves, the channel access is controlled by the master. Units can also be in a hold mode or a sniff mode.
In the active mode, the Bluetooth unit actively participates on the channel. The master schedules the transmission based on traffic demands to and from the different slaves. In addition, it supports regular transmissions to keep slaves synchronized to the channel. Active slaves listen in the master-to-slave slots for packets. If an active slave is not addressed, it may sleep until the next new master transmission. From the type indication in the packet, the number of slots the master has reserved for its transmission can be derived; during this time, the non-addressed slaves do not have to listen on the master-to-slave slots. A periodic master transmission is required to keep the slaves synchronized to the channel. Since the slaves only need the channel access code to synchronize with, any packet type can be used for this purpose.
NULL packets can be sent by a master and used by the slave to maintain synchronization. The POLL packet is very similar to the NULL packet. It does not have a payload either. In contrast to the NULL packet, it requires a confirmation from the recipient. Upon reception of a POLL packet the slave must respond with a packet. This return packet is an implicit acknowledgement of the POLL packet. The POLL packet can be used by the master in a piconet to poll the slaves, which must then respond even if they do not have information to send.
Synchronization is important for ad-hoc connections. In the Bluetooth system, each unit has a free-running native clock which has an accuracy of 20 ppm when the unit is active and 250 ppm when the unit is in a low-power mode. When a unit wants to page another unit, it can speed up the connection establishment when it knows the recipient's native clock. This clock information should be stored during a previous connection stage. A Bluetooth unit can thus have a list of unit addresses with corresponding native clocks it can use when paging one of those units. The clock information is stored as a time offset to its own native clock. When a piconet is in operation, it is the native clock in the master that determines the timing. The slaves add an offset to their native clocks in order to be hop synchronized to the master. The slave's native clock plus the offset with respect to the master provide the proper input to the hop selection scheme. Since the native clocks of the master and the slave are free-running, the offset in the slaves has to be adjusted continuously to compensate for drift. The reception of packets sent by the master is used to adjust the offset. The access code in front of the packet has the proper autocorrelation properties to enable a slave to derive the timing.
A master needs to send a poll packet occasionally, to maintain its awareness of other slaves within range, and to maintain synchronisation of such slaves. The number of poll packets sent should be kept to a minimum to avoid the power cost of causing these slaves to have to transmit. Transmitting usually costs more power than receiving and so contributes to draining the batteries of units which are presumably trying to save power by being in the sniff mode. As well as this efficiency goal, a polling master in Bluetooth should also be fair. In the Bluetooth best effort case, fairness implies that slaves get the same fraction of their fair share of communication time where the fair share is determined by rules.
For scheduling POLL packets during Sniff mode, several scheduling algorithms exist and are in use in commercially available devices. The more advanced algorithms stop scheduling POLL packets (and start scheduling NULL packets) in the sniff attempts when the slave has synchronized (i.e. when the slave did respond with a NULL packet). In other words when the slave has synchronized, it is sufficient to send NULL packets for the remaining master Tx slots of the sniff attempts. This algorithm is not suitable for implementations that are using a “prescheduling algorithm”. In “prescheduling implementations”, Tx/Rx packet pairs are allocated in advance. For a master (using a prescheduling algorithm) of a Bluetooth link in sniff mode, this means that the master does not know in advance (i.e. at the time the actual scheduling occurs) when the slave will be synchronized. One possible solution to this problem is to send POLL packets in every Tx slot of the Sniff attempts, but this costs transmit power at the slave side (since the slave is obliged to respond to POLL packets).
Several scheduling algorithms exist and are known. Usually, for scheduling POLL packets on an active Bluetooth link, a very simple algorithm is used, involving continuously and periodically sending a POLL packet. This obliges the slave device to transmit a packet (e.g. a NULL packet), at the cost of spending some energy in its transmit chain. Another (smaller) disadvantage is the interference on other piconets generated by the slave. The interval in which POLL packets are sent can not simply be increased: the slave needs sufficient synchronization points (i.e. packets received from the master) to stay synchronized and to have the chance to transmit data.